package tree;

import java.util.LinkedList;
import java.util.Queue;

/**
 填充它的每个 next 指针，让这个指针指向其下一个右侧节点。如果找不到下一个右侧节点，则将 next 指针设置为 NULL。
 初始状态下，所有 next 指针都被设置为 NULL。
 输入：root = [1,2,3,4,5,6,7]
 输出：[1,#,2,3,#,4,5,6,7,#]
 解释：给定二叉树如图 A 所示，你的函数应该填充它的每个 next 指针，以指向其下一个右侧节点，如图 B 所示。序列化的输出按层序遍历排列，同一层节点由 next 指针连接，'#' 标志着每一层的结束。
 * @author le
 */
public class InsertNextRightPointersInEachNode
{
    public static void main(String[] args)
    {

    }

    /*
    public Node connect(Node root) {
        Queue<Node> queue = new LinkedList<>();
        if (root != null){
            queue.offer(root);
        }
        while(!queue.isEmpty()){
            int size = queue.size();
            while(size-- > 0){
                Node cmp = queue.poll();
                if (size > 0){
                    cmp.next = queue.peek();
                }
                if (cmp.left != null){
                    queue.offer(cmp.left);
                }
                if (cmp.right != null){
                    queue.offer(cmp.right);
                }
            }
        }
        return root;
    }
    */
}

